perm filename NETWHO.MID[NET,MRC]2 blob
sn#330530 filedate 1978-01-22 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00005 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 TITLE NETWHO
C00004 00003 FIRE UP A CONNECTION
C00005 00004 SEND COMMAND
C00007 00005 FOOL AROUND WITH REPLIES
C00008 ENDMK
C⊗;
TITLE NETWHO
; QUICK NETWORK WHO KLUDGE UNTIL I DO THE RIGHT THING
NIORTS==-1 ? ERRHAN==-1 ? HSTTAB==-1 ; MARVELOUS NETWORK ROUTINES
.INSRT NETWRK[NET,MRC]
CORBEG==.
PDL: BLOCK 20.
USRBUF: BLOCK 10.
HSTBUF: BLOCK 10.
COREND==.-1
SUBTTL INITIALIZATION AND COMMAND PARSING
NETWHO: JFCL
RESET
MOVE 17,[PDL(-20)]
SETZM CORBEG
MOVE [CORBEG,,CORBEG+1]
BLT COREND
RESCAN
CMDSCN: INCHRS
JRST GETCMD
CAIE ↑J
CAIN 175
JRST GETCMD
CAIE ";
JRST CMDSCN
CAIA
GETCMD: OUTSTR [ASCIZ/(User@)Host: /]
; GET USER NAME
MOVE 1,[440700,,USRBUF]
GETUSR: INCHWL
CAIN ↑M
JRST GETUSR
CAIE 175
CAIN ↑J
JRST [SKIPN USRBUF
JRST GETCMD
MOVE [USRBUF,,HSTBUF]
BLT HSTBUF+9.
SETZM USRBUF
JRST GOGOGO]
CAIE "% ; CRETIN SAIL CONVENTION
CAIN "@
JRST GETHST
IDPB 1
JRST GETUSR
; GET HOST NAME
GETHST: MOVE 1,[440700,,HSTBUF]
GETHCH: INCHWL
CAIN ↑M
JRST GETHCH
CAIE 175
CAIN ↑J
JRST GOGOGO
IDPB 1
JRST GETHCH
SUBTTL FIRE UP A CONNECTION
GOGOGO: PUSHJ 17,MAPHST
MOVEI HSTBUF
PUSHJ 17,HSTNAM
JRST [ OUTSTR [ASCIZ/No such host.
/]
CLRBFI
PUSHJ 17,UNMHST
JRST NETWHO]
JRST [ OUTSTR [ASCIZ/Ambiguous host name.
/]
CLRBFI
PUSHJ 17,UNMHST
JRST NETWHO]
MOVEM HOST
PUSHJ 17,UNMHST
MOVEI 365
MOVEM ICPSKT
PUSHJ 17,CONECT
; FALLS THROUGH
SUBTTL SEND COMMAND
IRPC GARPLY,,[ERSTR]
MOVEI "GARPLY
PUSHJ 17,NETOCH
TERMIN
MOVEI ↑M ? PUSHJ 17,NETOCH
MOVEI ↑J ? PUSHJ 17,NETOCH
PUSHJ 17,NETSND ; FORCE COMMAND OUT
YUMMIE: PUSHJ 17,NETICW
CAIE "@
JRST YUMMIE
SKIPN USRBUF ; EVERYBODY?
JRST [ IRPC GARPLY,,[SSINF]
MOVEI "GARPLY
PUSHJ 17,NETOCH
TERMIN
JRST SNTUSR]
IRPC GARPLY,,[USINF ]
MOVEI "GARPLY
PUSHJ 17,NETOCH
TERMIN
MOVE 1,[440700,,USRBUF]
SNDUSR: ILDB 1
JUMPE SNTUSR
PUSHJ 17,NETOCH
JRST SNDUSR
SNTUSR: MOVEI ↑M ? PUSHJ 17,NETOCH
MOVEI ↑J ? PUSHJ 17,NETOCH
PUSHJ 17,NETSND ; FORCE COMMAND OUT
; FALLS THROUGH
SUBTTL FOOL AROUND WITH REPLIES
PUSHJ 17,NETICW
CAIN "+
JRST MSGLUP
CAIE "-
JRST 4,.-1
GOBLIN: PUSHJ 17,NETICW
CAIE <" >
JRST GOBLIN
GOBBLE: PUSHJ 17,NETICW
CAIN "@
EXIT
OUTCHR
JRST GOBBLE
MSGLUP: PUSHJ 17,NETICW
CAIN "+
EXIT
OUTCHR
JRST MSGLUP
END NETWHO